package done.easy_401_500;

import org.junit.Test;

import static com.study.util.LogUtil.info;

/**
 * 459. Repeated Substring Pattern 重复的子字符串
 * <p>
 * 给定一个非空的字符串，判断它是否可以由它的一个子串重
 * 复多次构成。给定的字符串只含有小写英文字母，并且长度
 * 不超过10000。
 * <p>
 * 示例 1:
 * 输入: "abab"
 * 输出: True
 * 解释: 可由子字符串 "ab" 重复两次构成。
 * 示例 2:
 * 输入: "aba"
 * 输出: False
 * 示例 3:
 * 输入: "abcabcabcabc"
 * 输出: True
 * 解释: 可由子字符串 "abc" 重复四次构成。 (或者子字符串 "abcabc" 重复两次构成。)
 * <p>
 * 2019-04-14 9:47 PM
 **/
@SuppressWarnings("all")
public class RepeatedSubstringPattern {

    public boolean repeatedSubstringPattern(String s) {
        // 190414 first
        return false;
    }

    @Test
    public void test() {
        info("true  -> {}", repeatedSubstringPattern("abcabcabcabc"));
        info("true  -> {}", repeatedSubstringPattern("abab"));
        info("false -> {}", repeatedSubstringPattern("aba"));
    }
}








































/*
public boolean repeatedSubstringPattern(String s) {
    int slong = s.length();

    // NO.1 如果循环一半都不行，那肯定不行了
    for (int i = 1; i <= slong/2; i++) {

        // NO.2 从 i 遍历到最后
        // 如果 0 到 i, 与 j 到 j+i 都相等
        // 就代表满足了循环重复的条件
        int count = 1;
        for (int j = i; j <= slong-i; j+=i)
            if (s.substring(0, i).equals(s.substring(j, j+i)))
                count++;
            else
                break;

        // NO.3 商(slong/i) 和 余数(slong%i)都满足，就是找到了
        if (slong % i == 0 && count == slong / i)
            return true;
    }
    return false;
}
*/
